package com.laker.admin.module.datasource.facade;

import com.laker.admin.framework.model.Response;
import com.laker.admin.module.datasource.entity.DataSourceCmd;
import com.laker.admin.module.excel.domain.DataSource;
import com.laker.admin.module.excel.entity.ExcelFillCmd;

/**
 * @author : nihongxin
 * @date : 2021/12/08
 */
public interface DataSourceFacade {
    /**
     * 检测数据库连通性（即jdbc的连通性）
     *
     * @param dataSourceCmd
     * @return
     */
    Response checkConnection(DataSourceCmd dataSourceCmd);

    /**
     * 获取所有库
     *
     * @param dataSourceCmd
     * @return
     */
    Response getDataBaseList(DataSourceCmd dataSourceCmd);

    /**
     * 获取库下的所有表
     *
     * @param dataSourceCmd
     * @return
     */
    Response getTableList(DataSourceCmd dataSourceCmd);

    /**
     * 查询指定库、指定表的表字段信息
     *
     * @param dataSourceCmd
     * @return
     */
    Response getTableDetail(DataSourceCmd dataSourceCmd);

    /**
     * 查询指定库、指定表的数据
     *
     * @param dataSourceCmd
     * @return
     */
    Response getTableData(DataSourceCmd dataSourceCmd);

    /**
     * 更新数据
     *
     * @param dataSourceCmd
     * @return
     */
    Response updateTableData(DataSourceCmd dataSourceCmd);

    /**
     * 保存数据
     *
     * @param dataSource
     * @return
     */
    Response save(DataSource dataSource);

    /**
     * 查询模版列表
     *
     * @param excelFillCmd
     * @return
     */
    Response list(ExcelFillCmd excelFillCmd);

    /**
     * 获取单个数据
     *
     * @param id
     * @return
     */
    Response getById(Long id);

    /**
     * 删除数据
     *
     * @param id
     * @return
     */
    Response deleteById(Long id);
}
